home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOSUTILS / MIDICAT.DOC < prev    next >
Text File  |  1996-01-16  |  5KB  |  150 lines

  1.         ******************************
  2.             MIDICAT v1.0
  3.     
  4.           concatenate midi binaries to play sequentially
  5.               by Guenter Nagler 
  6.                 1996 
  7.           (gnagler@ihm.tu-graz.ac.at)
  8.         ******************************
  9.  
  10. [0] FEATURES
  11.     + reads binary midi files
  12.     + writes a binary midi file
  13.     + converts midi time unit resolution to a common multiplier resolution
  14.     + initializes tempo, tact, programs, volumes, chorus, reverb effects, 
  15.       balance 
  16.     + adds a text marker in front beginning of a song
  17.     + removes large pause from end of song
  18.     + inserts 4/4 pauses between the songs
  19.     + requires format 0 midi files because when combining format 1 files
  20.       the number of tracks will grow quickly and many players have a track
  21.       limitation (e.g. 16 tracks)
  22.     + combine 2 up to 50 songs
  23.  
  24. [1] BACKGROUND
  25. I am using a Korg i3 music workstation and sometimes I sequence midi songs.
  26. Once I sequenced a series of short xmas melodies and had the trouble to 
  27. put the songs together to one xmas medley.
  28. This time I did it manually and it took much time to concatenate the songs.
  29. This brought me to the thought to write a simple midi utility that does
  30. such jobs without much effort.
  31.  
  32. [2] FILES DESCRIPTION
  33.  
  34. MIDICAT.EXE.........concatenate program for dos machines 
  35. MIDICAT.DOC.........this file, showing usage of MIDICAT.EXE
  36. MIDIIO.HPP..........header file for a c++ midi parser
  37. MIDIIO.CPP..........source code for a c++ midi parser
  38. MIDICAT.CPP.........c++ source code for modifying midi files
  39. MIDICAT.MAK.........make file for project
  40. MIDICAT.CFG.........compiler options for make
  41. MIDICAT.PRJ.........compiler project for Borland (tm) c++ compilers
  42. only MIDICAT.EXE is required to run program
  43.  
  44. [3] COPYRIGHT
  45.  
  46. MIDICAT (c) 1996 was created by Guenter Nagler.
  47.  
  48. MIDICAT is free and may be used as you wish with this one exception:
  49.  
  50.     You may NOT charge any fee or derive any profit for distribution
  51.     of MIDICAT.  Thus, you may NOT sell or bundle MIDICAT with any
  52.     product in a retail environment (shareware disk distribution, CD-ROM,
  53.     etc.) without permission of the author.
  54.  
  55. You may give MIDICAT to your friends, upload it to a BBS, or ftp it to
  56. another internet site, as long as you don't charge anything for it.
  57.  
  58. [4] DISCLAIMER
  59.  
  60. MIDICAT was designed to handle 100% compatible midi files.
  61. The midi parser was tested with 1500 different midi files but I can 
  62. not say if each 100% midi compatible midi file can be correctly converted.
  63. So I give no guarantees of the results, especially with non 100% 
  64. compatible midi files.
  65. If you find a midi file that you think to be 100% compatible midi
  66. that is not correctly converted, please send a sample file to 
  67. gnagler@ihm.tu-graz.ac.at . 
  68.  
  69. Use MIDICAT at your own risk.  Anything you do with MIDICAT is your
  70. responsibility, and not the author's.  Any damage caused to any person,
  71. computer, software, hardware, company, or business by running MIDICAT
  72. is your responsibility, and the author will not be liable.
  73.  
  74. If you don't understand these terms, or are not sure of something, or
  75. are afraid something bad might come of using MIDICAT, don't  use  it!
  76. You are here forewarned.
  77.  
  78. [5] INSTALLATION
  79.  
  80. [MSDOS]
  81. Simply copy MIDICAT.EXE in a directory that is in your path.
  82. When you start the program without arguments
  83.  
  84. [UNIX]
  85. compile sources with your C++ compiler (e.g. GNU Compiler g++):
  86.  
  87. g++ -o midicat midicat.cpp midiio.cpp
  88.  
  89. and run program
  90.  
  91. $ midicat
  92.  
  93. C:\> MIDICAT
  94.  
  95. you should get the usage text (see next section)
  96.  
  97. [6] USAGE
  98.  
  99. MidiCat concatenates midi format 0 files to play sequentially
  100. usage: MidiCat file1.mid file2.mid ... result.mid
  101.  
  102. file1.mid ... are a list of input midi files.
  103. The output will be written to result.mid if the file is not existent.
  104.  
  105. Note:
  106.    MidiCat only accepts midi format 0 files as input.
  107.    Convert other midi formats (1, 2) to format 0 using converters like
  108.    midi1to0, midi2to0 !
  109.    The resulting midi file will also be in format 0.
  110.   
  111. [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
  112.  
  113.          WWW:    http://hgiicm.tu-graz.ac.at/Cpub
  114.           contains all my dos/unix midi programs
  115.          EMAIL:  gnagler@ihm.tu-graz.ac.at
  116.  
  117. [9] USE
  118.  
  119. example: trying to use format 1 midi as input
  120.  
  121. C> midicat songfmt1.mid midif0.mid medley.mid
  122.  
  123. songfmt1.mid: format 1, 12 tracks, resolution 120
  124. songfmt1.mid is format 1 midi!
  125. Convert it to format 0 using midi1to0
  126.  
  127. C> midi1to0 songfmt1.mid songfmt0.mid
  128.  
  129. and retry
  130. C> midicat songfmt0.mid midif0.mid medley.mid
  131. songfmt0.mid: format 0, 1 tracks, resolution 120
  132. midif0.mid: format 0, 1 tracks, resolution 240
  133. output written to medley.mid:
  134. medley.mid: format 0, 1 tracks, resolution 240
  135.  
  136. example: midicat does not allow to overwrite existing files
  137. C> midicat songfmt0.mid midif0.mid existing.mid
  138. output file existing.mid already existing. aborting ...
  139.  
  140. C> del existing.mid
  141. Deleting existing.mid.
  142.    1 file(s) deleted.
  143. and retry again.
  144.  
  145. Information: Midicat also denies to write output to one of the input files
  146.   and will not write to directories without write permission.
  147.  
  148.  
  149.  
  150.